Cloud computing is now ubiquitous in both enterprise and consumer settings. In cloud computing, data and applications are accessed over the Internet instead of requiring local storage and compute resources, and instead of owning all the hardware where the data resides and the software applications execute, an enterprise or a consumer (the “client” or “tenant”) utilizes hardware and software resources supplied by a cloud computing provider to store the data and run the applications. Relying on sharing of resources among numerous clients, the cloud computing infrastructure (sometimes referred to as Infrastructure as a service (IaaS)) satisfies elastic demand spikes and achieves economies of scale thus becoming popular in various industries. In an IaaS model, computing resources are often offered as a number of virtual machines to a client requesting computing resources, and a hypervisor manages the offered virtual machines.
For media content processing, a video streaming system may utilize the cloud computing infrastructures offered by the cloud computing providers to provide services to a client. An operator of the video streaming system often is not the cloud computing providers. Thus a client may reach a service level agreement (SLA) with the operator of the video streaming system, and the operator of the video streaming system leases computing resources within the cloud computing infrastructures to process media contents from the client. Media contents often have strict timing requirements and a client may require fault-tolerance from a failure of a video streaming platform, thus it is challenging for the operator of the video streaming system to process media contents.
For example, it is challenging to offer fault-tolerant media content processing. In order to provide fault-tolerance from a failure, it is desirable for the operator of the video streaming system to process a single video source in multiple video streaming platforms so that when one video streaming platform fails, another may take over automatically without human intervention. Yet, the coordination of the multiple video streaming platforms requires delicate coordinating the single video source to arrive at the multiple video streaming platforms and output from the multiple video streaming platforms to a single content distribution network (CDN), which is challenging.
Additionally, it is challenging to synchronize multiple media content streams. For example, for sporting events, it is common that media contents from multiple angles of the same event are fed to one or more video streaming platforms as multiple video sources of the video streaming system. The media contents from multiple angles of the same event typically pass through different paths prior to reach to the one or more video streaming platforms, thus the media contents are out of synchronization from each other when they arrive at the one or more video streaming platforms. Yet, since it is desirable for the media contents from the multiple angles of the same events to be synchronized when it is distributed to the CDN. Thus the one or more video streaming platforms need to coordinate the timing of multiple media content streams.